package com.zhuozhou.jdyc.api;


import com.zhuozhou.jdyc.bean.Code.VersionMessage;
import com.zhuozhou.jdyc.bean.base.PageBean;
import com.zhuozhou.jdyc.main.goods.bean.BasicsCommentDetailsBase;
import com.zhuozhou.jdyc.main.goods.bean.BasicsCommodityBase;
import com.zhuozhou.jdyc.main.goods.bean.TiHuoBase;
import com.zhuozhou.jdyc.main.main.bean.BasicsCitySearchBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsCommodityTypeBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsShoppingBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsTypeBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsTypeDetailsBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsTypeListBean;
import com.zhuozhou.jdyc.main.main.bean.BasicsTypePost;
import com.zhuozhou.jdyc.main.main.bean.BasicsYiHuoStopBean;
import com.zhuozhou.jdyc.main.main.bean.CheckSoftUpdateBean;
import com.zhuozhou.jdyc.main.main.bean.ChengYuBean;
import com.zhuozhou.jdyc.main.main.bean.ChopCommodityTopBean;
import com.zhuozhou.jdyc.main.main.bean.CouponItemBean;
import com.zhuozhou.jdyc.main.main.bean.IndexDetailsBean;
import com.zhuozhou.jdyc.main.main.bean.IndexDetailsPost;
import com.zhuozhou.jdyc.main.main.bean.JiFenCommodityTopBean;
import com.zhuozhou.jdyc.main.main.bean.NewsBean;
import com.zhuozhou.jdyc.main.main.bean.ShopCommodityListBean;
import com.zhuozhou.jdyc.main.main.bean.ShopIndexBean;
import com.zhuozhou.jdyc.main.meinfo.bean.BangDingBean;
import com.zhuozhou.jdyc.main.meinfo.bean.BasicsMyPayBean;
import com.zhuozhou.jdyc.main.meinfo.bean.CheckBoxBean;
import com.zhuozhou.jdyc.main.meinfo.bean.CollectBean;
import com.zhuozhou.jdyc.main.meinfo.bean.ConcernMerchantBean;
import com.zhuozhou.jdyc.main.meinfo.bean.DaiLiShangBean;
import com.zhuozhou.jdyc.main.meinfo.bean.FXOrderBean;
import com.zhuozhou.jdyc.main.meinfo.bean.FenXaoBean;
import com.zhuozhou.jdyc.main.meinfo.bean.MsgBean;
import com.zhuozhou.jdyc.main.meinfo.bean.MyDiscountBean;
import com.zhuozhou.jdyc.main.meinfo.bean.QuYuBean;
import com.zhuozhou.jdyc.main.meinfo.bean.ShippingAddressBean;
import com.zhuozhou.jdyc.main.meinfo.bean.SpoorBean;
import com.zhuozhou.jdyc.main.meinfo.bean.WalletBean;
import com.zhuozhou.jdyc.main.menu.bean.JokeBean;
import com.zhuozhou.jdyc.main.settlement.bean.PayBean;
import com.zhuozhou.jdyc.main.settlement.bean.PayInfoBean;
import com.zhuozhou.jdyc.main.settlement.bean.VerificationBean;
import com.zhuozhou.jdyc.main.user.bean.ForgetPasswordBean;
import com.zhuozhou.jdyc.main.user.bean.IndexMeInfo;
import com.zhuozhou.jdyc.main.user.bean.LoginResultBean;
import com.zhuozhou.jdyc.main.user.bean.ModifyPasswordBean;
import com.zhuozhou.jdyc.main.user.bean.PerfectUserInfoBean;
import com.zhuozhou.jdyc.main.user.bean.UserInfo;
import com.zhuozhou.jdyc.util.crash.ErrorMsg;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

/**
 * 作者： 方舟
 * 时间： 2019/7/30
 * 描述：
 * 来源：
 */

public interface ApiServiceHelper {

    /**
     * 通过 List<MultipartBody.Part> 传入多个part实现多文件上传
     *
     * @param parts 每个part代表一个
     * @return 状态信息
     */
    @Multipart
    @POST("timetable/Basics/updateimg")
    Observable<BasicsCitySearchBean> uploadFilesWithParts(@Part() List<MultipartBody.Part> parts);


    /**
     * 通过 MultipartBody和@body作为参数来上传
     *
     * @param multipartBody MultipartBody包含多个Part
     * @return 状态信息
     */
    @POST("users/image")
    Observable<BasicsCitySearchBean> uploadFileWithRequestBody(@Body MultipartBody multipartBody);

    /**
     * 上传文件请求
     *
     * @param url      URL路径
     * @param paramMap 请求参数
     * @return
     */
    @Multipart
    @POST
    Observable<BasicsCitySearchBean> postFile(@Url String url, @PartMap Map<String, RequestBody> paramMap);

    /**
     * 大文件官方建议用 @Streaming 来进行注解，不然会出现IO异常，小文件可以忽略不注入
     *
     * @param fileUrl 文件路径地址
     * @return 观察者
     */
    @Streaming
    @GET
    Observable<ResponseBody> downloadFile(@Url String fileUrl);

    /**
     * 大文件官方建议用 @Streaming 来进行注解，不然会出现IO异常，小文件可以忽略不注入
     *
     * @param fileUrl 文件路径地址
     * @return 观察者
     */
    @Streaming
    @GET
    Observable<ResponseBody> downloadFile(@Header("Range") String range, @Url String fileUrl);

    /**
     * 刷新token信息，用于token过期后重新获取token
     *
     * @return
     */
    @Headers("x-url:sub")
    @POST("scs-app/refreshToken")
    Observable<LoginResultBean> getNewToken();

    /**
     * 获取登录用户的接口及操作数据权限
     *
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("mobile/getMenus")
    Observable<List<Object>> getAppUserMenu();

    /**
     * 验证码
     *
     * @param map 账号密码登录
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("login/register_sendsms")
    Observable<BasicsCitySearchBean> sms(@Body Map map);


    /**
     * 注册
     *
     * @param map 账号密码登录
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("login/h5_register")
    Observable<BasicsCitySearchBean> register(@Body Map map);

    /**
     * 登录
     *
     * @param map 账号密码登录
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/login")
    Observable<UserInfo> login(@Body Map map);

    /**
     * 获取用户信息
     *
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("scs-app/user/getUserInfo")
    Observable<UserInfo> getUserInfo();

    /**
     * 忘记密码
     *
     * @param forgetPasswordBean 忘记密码包括身份信息和手机信息
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("scs-app/user/forgetPwd")
    Observable<Object> forgetPassword(@Body ForgetPasswordBean forgetPasswordBean);

    /**
     * 修改密码
     *
     * @param modifyPasswordBean 原密码新密码
     * @return 观察者
     */
    @Headers("x-url:sub")
    @POST("scs-app/user/updatePwd")
    Observable<Object> modifyPassword(@Body ModifyPasswordBean modifyPasswordBean);

    /**
     * 完善用户信息，填写证件号码和姓名
     *
     * @param perfectUserInfoBean
     * @return
     */
    @Headers("x-url:sub")
    @POST("scs-app/user/updateUserInfo")
    Observable<Object> perfectUserInfo(@Body PerfectUserInfoBean perfectUserInfoBean);

    /**
     * 修改初始密码
     *
     * @param modifyPasswordBean
     * @return
     */
    @Headers("x-url:sub")
    @POST("scs-app/user/forceSetPwd")
    Observable<Object> modifyInitPassword(@Body ModifyPasswordBean modifyPasswordBean);

    /**
     * 版本更新检测
     *
     * @param checkSoftUpdateBean 版本检测更新
     * @return
     */
    @Headers("x-url:admin")
    @POST("app/version")
    Observable<VersionMessage> checkSoftUpdate(@Body CheckSoftUpdateBean checkSoftUpdateBean);

    /**
     * 错误日志上传
     *
     * @param errorMsg 错误信息
     * @return
     */
    @Headers("x-url:admin")
    @POST("app/error")
    Observable<Object> uploadErrorLog(@Body ErrorMsg errorMsg);


    @Headers("x-url:sub")
    @POST("scs-app/common/getBannerList")
    Observable<PageBean<Object>> getIndexBannerList();


    @Headers("x-url:sub")
    @GET("toutiao/index")
    Observable<PageBean<NewsBean>> getNews(@Query("key") String key, @Query("type") String type);

    @Headers("x-url:sub")
    @GET("chengyu/query")
    Observable<ChengYuBean> getChengYu(@Query("key") String key, @Query("word") String word, @Query("dtype") String dtype);

    @Headers("x-url:sub")
    @GET("joke/content/list.php")
    Observable<PageBean<JokeBean>> getJoke(@Query("key") String key, @Query("sort") String sort, @Query("page") int page,
                                           @Query("pagesize") int pagesize, @Query("time") long time);

    /**
     * 首页模块导航
     *
     * @param basicsTypePost 获取类型
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/type")
//{type: 1, page: 1, city: ""}
    Observable<BasicsTypeBean> getBasicsType(@Body BasicsTypePost basicsTypePost);

    /**
     * 首页推荐商品
     *
     * @param basicsTypePost 首页推荐商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/index")
//{type: 1, page: 1, city: ""}
    Observable<List<ShopIndexBean>> getShopIndex(@Body BasicsTypePost basicsTypePost);

    /**
     * 首页商家
     *
     * @param basicsTypePost 首页商家
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/commodityTop")
    Observable<List<ChopCommodityTopBean>> getChopCommodityTop(@Body BasicsTypePost basicsTypePost);

    /**
     * 获取底部商品
     *
     * @param basicsTypePost 获取底部商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/commoditytype")
    Observable<BasicsCommodityTypeBean> getBasicsCommodityType(@Body BasicsTypePost basicsTypePost);

    /**
     * 获取底部商品
     *
     * @param map 获取商品详情
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/commodity")
    Observable<BasicsCommodityBase> getBasicsCommodity(@Body Map map);

    /**
     * 获取分享图片
     *
     * @param map 获取商品详情
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/pathImg")
    Observable<String> getPathImg(@Body Map map);

    /**
     * 获取底部商品
     *
     * @param map 关注商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/Collection")
    Observable<BasicsCitySearchBean> getBasicsCollection(@Body Map map);

    /**
     * 获取底部商品
     *
     * @param indexDetailsPost 获取底部商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/indexDetails")
    Observable<IndexDetailsBean> getShopIndexDetails(@Body IndexDetailsPost indexDetailsPost);

    /**
     * 获取底部商品
     *
     * @param basicsTypePost 获取底部商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/citysearch")
    Observable<List<BasicsCitySearchBean>> getBasicsCitySearch(@Body BasicsTypePost basicsTypePost);

    /**
     * 获取底部商品
     *
     * @param basicsTypePost 获取底部商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/commodityList")
    Observable<ShopCommodityListBean> getShopCommodityList(@Body BasicsTypePost basicsTypePost);

    /**
     * 获取底部商品
     *
     * @param basicsTypePost 获取底部商品
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/commodityDetail")
    Observable<ShopCommodityListBean> getShopCommodityDetail(@Body BasicsTypePost basicsTypePost);

    /**
     * 商家分类搜索
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/searchAdmin")
    Observable<ShopCommodityListBean> getBasicsSearchAdmin(@Body Map map);

    /**
     * 商品分类搜索
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/search")
    Observable<BasicsCommodityTypeBean> getBasicsSearch(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/typeList")
    Observable<BasicsTypeListBean> getBasicsTypeList(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/typeDetails")
    Observable<BasicsTypeDetailsBean> getBasicsTypeDetails(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/typeDetails2")
    Observable<BasicsCommodityTypeBean> getBasicsTypeDetails2(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/jifen/commodityTop")
    Observable<JiFenCommodityTopBean> getJiFenCommodityTop(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/jifen/commodity")
    Observable<BasicsCommodityBase> getJiFenCommodity(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Yihuo/commodity")
    Observable<BasicsCommodityBase> getYiHuoCommodity(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/yihuostop")
    Observable<List<BasicsYiHuoStopBean>> getBasicsYiHuoStop(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/shopping")
    Observable<BasicsShoppingBean> getBasicsShopping(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/follow")
    Observable<BasicsCitySearchBean> getBasicsFollow(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/basics/topdetails")
    Observable<List<BasicsCommodityTypeBean.ArrayBean>> getBasicsTopDetails(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/Getdiscount")
    Observable<BasicsCitySearchBean> getShopGetDiscount(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/selectCoupons")
    Observable<CouponItemBean> postShopSelectCoupons(@Body Map map);

    /**
     * 所有评价
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/commentdetails")
    Observable<BasicsCommentDetailsBase> getBasicsCommentDetails(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/shoppingJoin")
    Observable<BasicsCitySearchBean> getBasicsShoppingJoin(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/statistics")
    Observable<IndexMeInfo> getBasicsStatistics(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/mypay")
    Observable<BasicsMyPayBean> getBasicsMyPay(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/payrefund")
    Observable<BasicsCitySearchBean> postBasicsPayRefund(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/consignee")
    Observable<BasicsCitySearchBean> postBasicsConsignee(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/delpay")
    Observable<BasicsCitySearchBean> postBasicsDelPay(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/shoppingcount")
    Observable<BasicsCitySearchBean> postShoppingCount(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/wallet")
    Observable<WalletBean> getBasicsWallet(@Body Map map);

    /**
     * 提现
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/basics/money")
    Observable<BasicsCitySearchBean> postMoney(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/delshopping")
    Observable<BasicsCitySearchBean> postDelShopping(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/footprint")
    Observable<SpoorBean> getBasicsFootprint(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/myCollection")
    Observable<List<CollectBean>> getBasicsMyCollection(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/myfollow")
    Observable<ConcernMerchantBean> getBasicsMyFollow(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/shop/mydiscount")
    Observable<List<MyDiscountBean>> getMyDiscount(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/basics/fenxiaomoney")
    Observable<FenXaoBean> getFenXaoMoney(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/fxorder")
    Observable<FXOrderBean> getFXOrder(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/txmoney")
    Observable<FXOrderBean> getTXMoney(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/fxuser2")
    Observable<FXOrderBean> getFXUser2(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/fxuser1")
    Observable<FXOrderBean> getFXUser1(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("login/duanxin")
    Observable<MsgBean> getDanXin(@Body Map map);

    /**
     * 所有商品
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("login/verify")
    Observable<Integer> getVerify(@Body Map map);

    /**
     * 绑定手机号码
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("login/bangding")
    Observable<BangDingBean> getBangDing(@Body Map map);

    /**
     * 绑定手机号码
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/peisong")
    Observable<CheckBoxBean> getPeiSong(@Body Map map);

    /**
     * 绑定手机号码
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/quyu")
    Observable<QuYuBean> getQuYu(@Body Map map);

    /**
     * 绑定手机号码
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/dianpuleixing")
    Observable<CheckBoxBean> getDianPuLeiXing(@Body Map map);

    /**
     * 绑定手机号码
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/weixin")
    Observable<CheckBoxBean> getWeiXin(@Body Map map);

    /**
     * 提交代理商信息
     *
     * @param daiLiShangBean
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/dailishang")
    Observable<BasicsCitySearchBean> postDaiLiShang(@Body DaiLiShangBean daiLiShangBean);

    /**
     * 我的收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/mySite")
    Observable<ShippingAddressBean> getMySite(@Body Map map);

    /**
     * 提货店铺
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/tihuo")
    Observable<List<TiHuoBase>> getTiHuo(@Body Map map);

    /**
     * 配送方式
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/distribution")
    Observable<List<BasicsCommodityBase.DataBean.DistributionBean>> getDistribution(@Body Map map);

    /**
     * 删除收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/siteDel")
    Observable<BasicsCitySearchBean> getSiteDel(@Body Map map);

    /**
     * 添加收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/site")
    Observable<BasicsCitySearchBean> postSite(@Body Map map);

    /**
     * 编辑收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/siteUpdate")
    Observable<BasicsCitySearchBean> postSiteUpdate(@Body Map map);

    /**
     * 编辑收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/hexiao")
    Observable<BasicsCitySearchBean> getHeXao(@Body Map map);

    /**
     * 编辑收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/mypay")
    Observable<VerificationBean> getMyPay(@Body Map map);
    /**
     * 编辑收货地址
     *
     * @param map
     * @return
     */
    @Headers("x-url:sub")
    @POST("timetable/Basics/pay")
    Observable<PayInfoBean> toPay(@Body Map map);

}
